From 438e3e1ca1b7bb3f83e217207fd2508b7e3cafde Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Sun, 21 Nov 2004 16:24:58 +0000 Subject: [PATCH] Update for GdkPangoRenderer Sat Nov 20 16:01:51 2004 Owen Taylor * gdk/gdk-sections.txt gdk/gdk.types : Update for GdkPangoRenderer * gdk/Makefile.am gdk/images/rotated-text.png: * gdk/tmpl/pango_interaction.sgml: Add a long description and an extensive example (more or less the same as demos/gtk-demo/rotated_text.c) --- docs/reference/ChangeLog | 11 + docs/reference/gdk/Makefile.am | 2 + docs/reference/gdk/gdk-sections.txt | 22 ++ docs/reference/gdk/gdk.types | 1 + docs/reference/gdk/images/rotated-text.png | Bin 0 -> 15454 bytes docs/reference/gdk/tmpl/drawing.sgml | 37 ++++ .../reference/gdk/tmpl/pango_interaction.sgml | 192 +++++++++++++++++- docs/reference/gtk/gtk-sections.txt | 2 + docs/reference/gtk/tmpl/gtklabel.sgml | 23 +++ 9 files changed, 288 insertions(+), 2 deletions(-) create mode 100644 docs/reference/gdk/images/rotated-text.png diff --git a/docs/reference/ChangeLog b/docs/reference/ChangeLog index 749d9b0222..3f6f8f189e 100644 --- a/docs/reference/ChangeLog +++ b/docs/reference/ChangeLog @@ -1,3 +1,14 @@ +Sat Nov 20 16:01:51 2004 Owen Taylor + + * gdk/gdk-sections.txt gdk/gdk.types : Update for GdkPangoRenderer + * gdk/Makefile.am gdk/images/rotated-text.png: + + * gdk/tmpl/pango_interaction.sgml: Add a long + description and an extensive example (more or less the same as + demos/gtk-demo/rotated_text.c) + + * gtk/gtk-sections.txt: Add gtk_label_set/get_angle. + 2004-11-20 Matthias Clasen * gtk/gtk-sections.txt: Add gtk_dialog_set_alternative_button_order_from_array diff --git a/docs/reference/gdk/Makefile.am b/docs/reference/gdk/Makefile.am index dafa39fa45..92b2cfd277 100644 --- a/docs/reference/gdk/Makefile.am +++ b/docs/reference/gdk/Makefile.am @@ -59,6 +59,8 @@ content_files = \ # Images to copy into HTML directory HTML_IMAGES = \ + images/rotated-text.png \ + \ images/X_cursor.png \ images/arrow.png \ images/based_arrow_down.png \ diff --git a/docs/reference/gdk/gdk-sections.txt b/docs/reference/gdk/gdk-sections.txt index 9d7ea2d5d1..825c0a0a84 100644 --- a/docs/reference/gdk/gdk-sections.txt +++ b/docs/reference/gdk/gdk-sections.txt @@ -464,7 +464,10 @@ GdkSegment gdk_draw_rectangle gdk_draw_arc gdk_draw_polygon +gdk_draw_trapezoids +GdkTrapezoid gdk_draw_glyphs +gdk_draw_glyphs_transformed gdk_draw_layout_line gdk_draw_layout_line_with_colors gdk_draw_layout @@ -827,6 +830,14 @@ GDK_TYPE_PROP_MODE
Pango Interaction pango_interaction +GdkPangoRenderer +GdkPangoRendererClass +gdk_pango_renderer_new +gdk_pango_renderer_get_default +gdk_pango_renderer_set_drawable +gdk_pango_renderer_set_gc +gdk_pango_renderer_set_stipple +gdk_pango_renderer_set_override_color gdk_pango_context_get gdk_pango_context_get_for_screen gdk_pango_context_set_colormap @@ -836,6 +847,17 @@ gdk_pango_attr_embossed_new gdk_pango_attr_stipple_new gdk_pango_layout_get_clip_region gdk_pango_layout_line_get_clip_region + +GDK_TYPE_PANGO_RENDERER +GDK_PANGO_RENDERER +GDK_IS_PANGO_RENDERER +GDK_PANGO_RENDERER_CLASS +GDK_IS_PANGO_RENDERER_CLASS +GDK_PANGO_RENDERER_GET_CLASS + + +gdk_pango_renderer_get_type +GdkPangoRendererPrivate
diff --git a/docs/reference/gdk/gdk.types b/docs/reference/gdk/gdk.types index da34cd89d0..12b0f8d356 100644 --- a/docs/reference/gdk/gdk.types +++ b/docs/reference/gdk/gdk.types @@ -5,6 +5,7 @@ gdk_display_manager_get_type gdk_screen_get_type gdk_drawable_get_type gdk_window_object_get_type +gdk_pango_renderer_get_type gdk_pixmap_get_type gdk_gc_get_type gdk_keymap_get_type diff --git a/docs/reference/gdk/images/rotated-text.png b/docs/reference/gdk/images/rotated-text.png new file mode 100644 index 0000000000000000000000000000000000000000..1952314b07726f68995085986081b26438a3288e GIT binary patch literal 15454 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 literal 0 HcmV?d00001 diff --git a/docs/reference/gdk/tmpl/drawing.sgml b/docs/reference/gdk/tmpl/drawing.sgml index 0443146ad8..87475aeeee 100644 --- a/docs/reference/gdk/tmpl/drawing.sgml +++ b/docs/reference/gdk/tmpl/drawing.sgml @@ -285,6 +285,29 @@ function. @npoints: + + + + + +@drawable: +@gc: +@trapezoids: +@n_trapezoids: + + + + + + + +@y1: +@x11: +@x21: +@y2: +@x12: +@x22: + @@ -298,6 +321,20 @@ function. @glyphs: + + + + + +@drawable: +@gc: +@matrix: +@font: +@x: +@y: +@glyphs: + + diff --git a/docs/reference/gdk/tmpl/pango_interaction.sgml b/docs/reference/gdk/tmpl/pango_interaction.sgml index dc6c71af70..16ee04a5f7 100644 --- a/docs/reference/gdk/tmpl/pango_interaction.sgml +++ b/docs/reference/gdk/tmpl/pango_interaction.sgml @@ -2,18 +2,206 @@ Pango Interaction -Low-level access to Pango +Using Pango in GDK - +Pango is the text layout system used by GDK and GTK+. The functions +and types in this section are used to render Pango objects to GDK. +drawables, and also extend the set of Pango attributes to include +stippling and embossing. + + +Creating a #PangoLayout object is the first step in rendering text, +and requires getting a handle to a #PangoContext. For GTK+ programs, +you'll usually want to use gtk_widget_get_context(), or +gtk_widget_create_pango_layout(), rather than using the lowlevel +gdk_pango_context_get_for_screen(). Once you have a #PangoLayout, you +can set the text and attributes of it with Pango functions like +pango_layout_set_text() and get its size with pango_layout_get_size(). +(Note that Pango uses a fixed point system internally, so converting +between Pango units and pixels using PANGO_SCALE or the PANGO_PIXELS() macro.) + + +Rendering a Pango layout is done most simply with gdk_draw_layout(); +you can also draw pieces of the layout with gdk_draw_layout() or +gdk_draw_glyphs(). #GdkPangoRenderer is a subclass of #PangoRenderer +that is used internally to implement these functions. Using it +directly or subclassing it can be useful in some cases. See the +#GdkPangoRenderer documentation for details. + +Using #GdkPangoRenderer to draw transformed text + + +#define RADIUS 100 +#define N_WORDS 10 +#define FONT "Sans Bold 18" + +GdkScreen *screen = gdk_drawable_get_screen (drawable); +PangoRenderer *renderer; +GdkGC *gc; + +PangoMatrix matrix = PANGO_MATRIX_INIT; +PangoContext *context; +PangoLayout *layout; +PangoFontDescription *desc; + +double device_radius; +int width, height; +int i; + +/* Get the default renderer for the screen, and set it up for drawing */ +renderer = gdk_pango_renderer_get_default (screen); +gdk_pango_renderer_set_drawable (GDK_PANGO_RENDERER (renderer), drawable); + +gc = gdk_gc_new (drawable); +gdk_pango_renderer_set_gc (GDK_PANGO_RENDERER (renderer), gc); + +/* Set up a transformation matrix so that the user space coordinates for + * where we are drawing are [-RADIUS, RADIUS], [-RADIUS, RADIUS] + * We first center, then change the scale */ +gdk_drawable_get_size (drawable, &width, &height); +device_radius = MIN (width, height) / 2.; + +pango_matrix_translate (&matrix, + device_radius + (width - 2 * device_radius) / 2, + device_radius + (height - 2 * device_radius) / 2); +pango_matrix_scale (&matrix, device_radius / RADIUS, device_radius / RADIUS); + +/* Create a PangoLayout, set the font and text */ +context = gdk_pango_context_get_for_screen (screen); +layout = pango_layout_new (context); +pango_layout_set_text (layout, "Text", -1); +desc = pango_font_description_from_string (FONT); +pango_layout_set_font_description (layout, desc); +pango_font_description_free (desc); + +/* Draw the layout N_WORDS times in a circle */ +for (i = 0; i < N_WORDS; i++) + { + GdkColor color; + PangoMatrix rotated_matrix = matrix; + int width, height; + double angle = (360. * i) / N_WORDS; + + /* Gradient from red at angle == 60 to blue at angle == 300 */ + color.red = 65535 * (1 + cos ((angle - 60) * M_PI / 180.)) / 2; + color.green = 0; + color.blue = 65535 - color.red; + + gdk_pango_renderer_set_override_color (GDK_PANGO_RENDERER (renderer), + PANGO_RENDER_PART_FOREGROUND, &color); + + pango_matrix_rotate (&rotated_matrix, angle); + + pango_context_set_matrix (context, &rotated_matrix); + + /* Inform Pango to re-layout the text with the new transformation matrix */ + pango_layout_context_changed (layout); + + pango_layout_get_size (layout, &width, &height); + pango_renderer_draw_layout (renderer, layout, + - width / 2, - RADIUS * PANGO_SCALE); + } + +/* Clean up default renderer, since it is shared */ +gdk_pango_renderer_set_override_color (GDK_PANGO_RENDERER (renderer), + PANGO_RENDER_PART_FOREGROUND, NULL); +gdk_pango_renderer_set_drawable (GDK_PANGO_RENDERER (renderer), NULL); +gdk_pango_renderer_set_gc (GDK_PANGO_RENDERER (renderer), NULL); + +/* free the objects we created */ +g_object_unref (layout); +g_object_unref (context); +g_object_unref (gc); + + +

+ Output of <xref linkend="rotated-example"/> + +
+ + + + + + + + + + + + + + + + + + + + + + +@screen: +@Returns: + + + + + + + +@screen: +@Returns: + + + + + + + +@gdk_renderer: +@drawable: + + + + + + + +@gdk_renderer: +@gc: + + + + + + + +@gdk_renderer: +@part: +@stipple: + + + + + + + +@gdk_renderer: +@part: +@color: + + diff --git a/docs/reference/gtk/gtk-sections.txt b/docs/reference/gtk/gtk-sections.txt index 6479e102c0..ba601e69a9 100644 --- a/docs/reference/gtk/gtk-sections.txt +++ b/docs/reference/gtk/gtk-sections.txt @@ -1935,10 +1935,12 @@ gtk_label_get_selection_bounds gtk_label_get_use_markup gtk_label_get_use_underline gtk_label_get_single_line_mode +gtk_label_get_angle gtk_label_set_label gtk_label_set_use_markup gtk_label_set_use_underline gtk_label_set_single_line_mode +gtk_label_set_angle GTK_LABEL GTK_IS_LABEL diff --git a/docs/reference/gtk/tmpl/gtklabel.sgml b/docs/reference/gtk/tmpl/gtklabel.sgml index ecd9d06c60..fb46d301c9 100644 --- a/docs/reference/gtk/tmpl/gtklabel.sgml +++ b/docs/reference/gtk/tmpl/gtklabel.sgml @@ -170,6 +170,11 @@ described below. @label: the object which received the signal. @arg1: + + + + + @@ -564,6 +569,15 @@ Gtk+ 1.0.x. @Returns: + + + + + +@label: +@Returns: + + @@ -600,3 +614,12 @@ Gtk+ 1.0.x. @single_line_mode: + + + + + +@label: +@angle: + + -- 2.30.2